<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>垂直对齐</title>
    <style>

        table{
            /* 合并边框 */
            border-collapse: collapse;
        
        }


        /* 表格的边框需要设置给td */
        td{
            border: 1px black solid;

            width: 300px;
            height: 300px;

            text-align: center;

            /* vertical-align 可以用来设置单元格中元素的对齐方式 */
            vertical-align: middle;
        }

        .box1{
            width: 400px;
            height: 400px;
            border: 10px red solid;

            position: relative;
        }

        .box2{
            /* 
                使用定位做居中时，要求元素必须有明确的高度和宽度
            */
            width: 200px;
            height: 200px;
            background-color: greenyellow;

            position: absolute;

            top: 0;
            bottom: 0;
            left: 0;
            right: 0;
            margin: auto;
        }

        /* 
        
            我们可以将元素的类型设置为table-cell
                然后再使用vertical-align来设置垂直居中
                它的好处时无需固定子元素的大小
                它的缺点时父元素的自动宽度将会丢失
        */
        .box3{
            /* 由于box3变成了td，此时它的默认宽度时被内容撑开的*/
            width: 400px;
            height: 400px;
            border: 10px red solid;

            /* 将box3转换为td */
            display: table-cell;
            vertical-align: middle;
            text-align: center;

        }

        .box4{
            display: inline-block;
            background-color: greenyellow;
        }

    </style>
</head>
<body>

    <div class="box3">
        <div class="box4">aaaaaaaaaaaaaadsasdasdaaaaaaas</div>
    </div>

<!-- <div class="box1">
    <div class="box2"></div>
</div> -->

    <!-- <table>
        <tr>
            <td>一</td>
            <td>二</td>
            <td>三</td>
        </tr>
        <tr>
            <td>一</td>
            <td>二</td>
            <td>三</td>
        </tr>
    </table> -->
</body>
</html>